package controlador;

import vista.FormProveedor;
import modelo.Proveedor;
import modelo.Conexion;
import modelo.ProveedorDAO;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ControlProveedor implements ActionListener{
		
		private FormProveedor fp;
		
		public ControlProveedor() {
			super();
			this.fp = new FormProveedor();
			this.fp.addListener(this);
			this.fp.setVisible(true);
			fp.setLocationRelativeTo(null);
			Limpiar();	
		}
	    
		public void Limpiar(){
			fp.SetTextCodigo("");
			fp.SetTextRazon("");
			fp.SetTextDireccion("");
			fp.SetTextTelefono("");
			fp.SetTextemail("");
			fp.EnabledBntEliminar(false);
			fp.EnabledBntGuardar(false);
			fp.EnabledBntBuscar(true);
		    fp.GetTextCodigo().enable(true);
		    fp.GetTextDireccion().enable(false);
		    fp.GetTextemail().enable(false);
		    fp.GetTextRazon().enable(false);
		    fp.GetTextTelefono().enable(false);
		}
	    
		public boolean BuscarProveedor(boolean most){
			try
			{
				ProveedorDAO DAO= new ProveedorDAO();
				ResultSet registro = DAO.BuscarProveedor(fp.GetTextCodigo().getText());
	    		if(registro.next())
	    		{
	    			String codproveedor  = registro.getString("codproveedor");
	    			String razonsocial  = registro.getString("razonsocial");
	    			String direccion  = registro.getString("direccion");
	    			String telefono  = registro.getString("telefono");
	    			String correoelectronico  = registro.getString("correoelectronico");
					Proveedor proveedor = new Proveedor(codproveedor, razonsocial,direccion, telefono,correoelectronico);
					fp.SetTextCodigo(codproveedor);
					fp.SetTextRazon(razonsocial);
					fp.SetTextDireccion(direccion);
					fp.SetTextTelefono(telefono);
					fp.SetTextemail(correoelectronico);
					fp.EnabledBntEliminar(true);
					fp.EnabledBntGuardar(false);
					fp.EnabledBntBuscar(false);
				    fp.GetTextCodigo().enable(false);
				    fp.GetTextDireccion().enable(false);
				    fp.GetTextemail().enable(false);
				    fp.GetTextRazon().enable(false);
				    fp.GetTextTelefono().enable(false);
					return true;
	    		}
	    		else
	    		{
	    		  if (fp.GetTextCodigo().getText().equals(""))
	    			  fp.mostrarMensaje("Ingrese un codigo por favor");
	    			  else if(most)
	    			{
	    				fp.mostrarMensaje("No existe un Proveedor con este código! "+fp.GetTextCodigo().getText()+ "");
						fp.EnabledBntGuardar(true);
						fp.EnabledBntBuscar(false);
					    fp.GetTextCodigo().enable(false);
					    fp.GetTextDireccion().enable(true);
					    fp.GetTextemail().enable(true);
					    fp.GetTextRazon().enable(true);
					    fp.GetTextTelefono().enable(true);
	    			}
	    			return false;
	    		}
			}
			catch (SQLException f) {
				f.printStackTrace();
			}
			return false;
		}
		
		public void GuardarProveedor(){
			if(fp.GetTextCodigo().getText().equals("")||fp.GetTextDireccion().getText().equals("")||fp.GetTextemail().getText().equals("")||fp.GetTextRazon().getText().equals("")||fp.GetTextTelefono().getText().equals(""))
    			fp.mostrarMensaje("Llene todos los campos");
    		else
    		{
	    		Proveedor proveedor = new Proveedor
	    		(fp.GetTextCodigo().getText(), 
	    		 fp.GetTextRazon().getText(),
	    		 fp.GetTextDireccion().getText(),
	    		 fp.GetTextTelefono().getText(),
	    		 fp.GetTextemail().getText());

	    		ProveedorDAO DAO = new ProveedorDAO();
	    		DAO.RegistarProveedor(proveedor.getCodproveedor(), proveedor.getRazonsocial(), proveedor.getDireccion(), proveedor.getTelefono(), proveedor.getCorreoelectronico());
	    		
	    		fp.mostrarMensaje("Proveedor registrado con éxito!");
    		    Limpiar();
    		}
		}
		
		public void EliminarProveedor(){
			ProveedorDAO DAO = new ProveedorDAO();
    		DAO.EliminarProveedor(fp.GetTextCodigo().getText());
					
			fp.mostrarMensaje("Proveedor Eliminado con éxito!");
			Limpiar();
		}

		public void actionPerformed(ActionEvent e) {
			
			if (e.getActionCommand().equals("B"))
	    		 BuscarProveedor(true);
	    	else if (e.getActionCommand().equals("Guardar"))
	    		 GuardarProveedor();
			else if (e.getActionCommand().equals("Eliminar"))
				 EliminarProveedor();
			else if(e.getActionCommand().equals("Cancelar"))
				 Limpiar();
			else if(e.getActionCommand().equals("S"))
				 fp.dispose();	
		}
	}

